package com.weiawei.Model;

import javax.swing.*;
import java.awt.*;

// 按钮组，尝试，超级专业的定制版按钮
public class Buttons extends JButton {

    private String[] imageURL ; // 图片地址数组

    private final boolean haveimage;  // flag 是否带有图片


    // 无参构造，用于无图片按钮的存放
    public Buttons() {
        super();
        this.haveimage = false ;
    }

    /**
     * 含参构造
     * 用于有图片 并且需要传递信息的按钮
     * @param imagesURL 图片地址
     * @param text      按钮的文本信息
     */
    public Buttons(String[] imagesURL , String text)
    {
        super(text);
        this.haveimage =true;
        this.imageURL = imagesURL;
        // 重设置鼠标指针样式，提升流畅
        setCursor(new Cursor(Cursor.HAND_CURSOR));
    }

    /**
     * 对按钮绘图
     */
    @Override
    protected void paintComponent(Graphics graphics) {
        super.paintComponent(graphics);

        ButtonModel model = getModel();
        Image image ;
        if(haveimage){
            if(model.isPressed()){  // 当按钮被按下时
                // 通过获取被点击时按钮的对象，通过指定路径来加载图片
                image = Toolkit.getDefaultToolkit().getImage(Buttons.class.getClassLoader().getResource(imageURL[0]));
            }else if(model.isRollover()){ //当指针停留在按钮上时
                image = Toolkit.getDefaultToolkit().getImage(Buttons.class.getClassLoader().getResource(imageURL[1]));
                graphics.drawImage(image, 0, 0, null);
                repaint();
            }else {  //其他事件
                image = Toolkit.getDefaultToolkit().getImage(Buttons.class.getClassLoader().getResource(imageURL[2]));
                graphics.drawImage(image, 0, 0, null);
                repaint();
            }
        }



    }
}
